
#include "config.hpp"

#include "atr/functional.hpp"

using namespace atr;
using namespace atr::core;

#include <iostream>

TEST(FunctinoalTest, Less_True)
{
    using T0 = less<int, long[2]>::type;
    using T1 = less<char, long>::type;
    using T2 = less<char[1], char[2]>::type;

    EXPECT_SAME ( _true, T0 );
    EXPECT_SAME ( _true, T1 );
    EXPECT_SAME ( _true, T2 );
}

TEST(FunctinoalTest, Less_False)
{
    using T0 = less<long, int>::type;
    using T1 = less<int, int>::type;
    using T2 = less<char[2], char[1]>::type;

    EXPECT_SAME ( _false, T0 );
    EXPECT_SAME ( _false, T1 );
    EXPECT_SAME ( _false, T2 );
}